package com.gylang.print.html.render;

import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.ReUtil;
import com.gylang.print.html.HTMLRender;
import com.gylang.print.html.emums.HtmlTag;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 * @author gylang
 * data 2021/6/16
 */
public class OLRender extends HTMLRender {

	@Override
	public String type() {
		return HtmlTag.OL.getLabel();
	}

	@Override
	public Element render(Element element, Map<String, Object> data) {

		// 遍历获取下面的子标签 如果子标签存在占位符 咋对其整个进行列表渲染

		Elements children = element.children();
		if (CollUtil.isEmpty(children)) {
			return element;
		}
		for (Element child : children) {
			String html = child.html();
			if (DATA_PLACEHOLDER.matcher(html).find()
				&& HtmlTag.LI.getLabel().equalsIgnoreCase(child.tag().getName())) {
				// 列表项
				// 获取占位符名称
				List<String> placeHolders = ReUtil.findAll(DATA_PLACEHOLDER, html, 1);
				// 判断是否存在列表展位
				for (String placeHolder : placeHolders) {
					String[] k = placeHolder.split(".");
					Object o = data.get(k[0]);
					// 获取集合数据
					if (ArrayUtil.isArray(o) || o instanceof Collection) {

						// 如果是集合
						// 则需要遍历集合
						if (hasCollection(child)) {

							// 渲染


						}
					}
					// 如果是集合 需要进行遍历输出

					//如果为集合 则

				}
//				StrUtil.format()
				// 判断是否存在占位符
				// 数据表更


				// 占位数据替换 并添加

			}
		}

		return null;
	}
}
